Skip to content

Conversation

stuartmorgan-g
Copy link
Collaborator

@stuartmorgan-g stuartmorgan-g commented Aug 19, 2025

For all packages that had conditionals to support iOS <13:

  • Update the min Flutter version to 3.35, which requires iOS 13
  • Remove the conditional logic
  • Update all the project metadata to require iOS 13+ (and macOS 10.15+ where applicable)

There is also some minor cleanup in in_app_purchase_storekit; just removing conditionals would have left cases where we were unnecessarily constructing dictionaries dynamically, so I folded them into the initial dictionary construction, and while doing that I noticed some cases where we were doing other unnecessary dynamic construction (maybe due to previous OS conditionals?) so I updated those as well. And then I noticed some inconsistency in use of WithCapacity: and updated those cases to be consistent. Lastly, I fixed a few stale comments that didn't reflect the current state of the code.

Includes autoformat changes, since updating the min Dart SDK opts into some formatter changes.

Fixes flutter/flutter#167735

Pre-Review Checklist

Note: The Flutter team is currently trialing the use of Gemini Code Assist for GitHub. Comments from the gemini-code-assist bot should not be taken as authoritative feedback from the Flutter team. If you find its comments useful you can update your code accordingly, but if you are unsure or disagree with the feedback, please feel free to wait for a Flutter team member's review for guidance on which automated comments should be addressed.

Footnotes

  1. Regular contributors who have demonstrated familiarity with the repository guidelines only need to comment if the PR is not auto-exempted by repo tooling. 2 3

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request effectively removes support for iOS versions older than 13.0 across several packages, which simplifies the codebase by removing conditional logic and updating deployment targets. The changes are well-executed and include valuable refactoring in in_app_purchase_storekit to improve code clarity and performance by using dictionary literals and pre-allocating array capacities. I've found one minor inconsistency in the test stubs related to array initialization that could be addressed for better consistency with the rest of the changes.

}

[self setValue:discounts forKey:@"discounts"];
NSMutableArray *discounts = [[NSMutableArray alloc] init];

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

For consistency with the other changes in this PR, it would be better to initialize this mutable array with a specific capacity, since the size is known. You've done this in FIAObjectTranslator.m, and applying the same pattern here would be a nice touch.

Suggested change
NSMutableArray *discounts = [[NSMutableArray alloc] init];
NSMutableArray *discounts = [NSMutableArray arrayWithCapacity:[map[@"discounts"] count]];

@stuartmorgan-g

This comment was marked as resolved.

@stuartmorgan-g
Copy link
Collaborator Author

This is actually ready for review now; apologies for not marking it as a draft when I first posted it.

return biometrics
}
if context.biometryType == LABiometryType.faceID {
biometrics.append(AuthBiometric.face)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this not need to return?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It doesn't actually matter, and the early return confused someone in an earlier review of adjacent code so I thought I'd remove it.

If you look at the context, this is structured as conditionally populating an array with potentially multiple elements, but in practice only one entry ever ends up in the array because biometryType is a singular value. So this early return doesn't do anything different from the return ~6 lines down.

Copy link
Contributor

@vashworth vashworth left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@stuartmorgan-g stuartmorgan-g added the autosubmit Merge PR when tree becomes green via auto submit App label Sep 2, 2025
@auto-submit auto-submit bot merged commit d3e0285 into flutter:main Sep 2, 2025
80 checks passed
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Sep 3, 2025
github-merge-queue bot pushed a commit to flutter/flutter that referenced this pull request Sep 3, 2025
flutter/packages@5d785a0...42bb347

2025-09-03 [email protected] [google_maps_flutter] Fixes
exception when dispose is called while asynchronous update from
didUpdateWidget is executed (flutter/packages#9227)
2025-09-03 [email protected] [google_maps_flutter] Add
cameraControl enable/disable & position on web (flutter/packages#9089)
2025-09-03 [email protected] [tool] Only license-check checked-in
files (flutter/packages#9905)
2025-09-03 [email protected]
[interactive_media_ads] Fixes preloading ad while another was playing on
Android (flutter/packages#9904)
2025-09-02 [email protected] Update
FWFWebViewFlutterWKWebViewExternalAPITests.swift (flutter/packages#9922)
2025-09-02 [email protected] Update
Stubs for FlutterPluginRegistrar interface change
(flutter/packages#9923)
2025-09-02 [email protected]
[camera_android_camerax] Update Android minimum SDK version
(flutter/packages#9945)
2025-09-02 [email protected] Roll Flutter from
da5523a to 6b18740 (49 revisions) (flutter/packages#9926)
2025-09-02 [email protected] [various] Scrub pre-iOS-13 code
(flutter/packages#9849)
2025-09-02 [email protected] [google_maps_flutter_web] Add
cameraControl enable/disable & position on web (flutter/packages#9921)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-packages-flutter-autoroll
Please CC [email protected] on the revert to ensure that a
human
is aware of the problem.

To file a bug in Flutter:
https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
mboetger pushed a commit to mboetger/flutter that referenced this pull request Sep 18, 2025
…er#174876)

flutter/packages@5d785a0...42bb347

2025-09-03 [email protected] [google_maps_flutter] Fixes
exception when dispose is called while asynchronous update from
didUpdateWidget is executed (flutter/packages#9227)
2025-09-03 [email protected] [google_maps_flutter] Add
cameraControl enable/disable & position on web (flutter/packages#9089)
2025-09-03 [email protected] [tool] Only license-check checked-in
files (flutter/packages#9905)
2025-09-03 [email protected]
[interactive_media_ads] Fixes preloading ad while another was playing on
Android (flutter/packages#9904)
2025-09-02 [email protected] Update
FWFWebViewFlutterWKWebViewExternalAPITests.swift (flutter/packages#9922)
2025-09-02 [email protected] Update
Stubs for FlutterPluginRegistrar interface change
(flutter/packages#9923)
2025-09-02 [email protected]
[camera_android_camerax] Update Android minimum SDK version
(flutter/packages#9945)
2025-09-02 [email protected] Roll Flutter from
da5523a to 6b18740 (49 revisions) (flutter/packages#9926)
2025-09-02 [email protected] [various] Scrub pre-iOS-13 code
(flutter/packages#9849)
2025-09-02 [email protected] [google_maps_flutter_web] Add
cameraControl enable/disable & position on web (flutter/packages#9921)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-packages-flutter-autoroll
Please CC [email protected] on the revert to ensure that a
human
is aware of the problem.

To file a bug in Flutter:
https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Increase iOS minimum supported version from 12 to 13
2 participants